From 27e89c69cd939c987bf4c9d153802ac229308a5e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 23 Oct 2017 05:22:28 +0200 Subject: [PATCH] selection: Add another surface api Of course, we need a getter too. --- gtk/gtkselection.c | 13 +++++++++++++ gtk/gtkselection.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c index 166e29fe8b..6590fac80e 100644 --- a/gtk/gtkselection.c +++ b/gtk/gtkselection.c @@ -1750,6 +1750,19 @@ gtk_selection_data_set_surface (GtkSelectionData *selection_data, return retval; } +cairo_surface_t * +gtk_selection_data_get_surface (GtkSelectionData *selection_data) +{ + GdkPixbuf *pixbuf; + cairo_surface_t *surface; + + pixbuf = gtk_selection_data_get_pixbuf (selection_data); + surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, 1, NULL); + g_object_unref (pixbuf); + + return surface; +} + /** * gtk_selection_data_get_pixbuf: * @selection_data: a #GtkSelectionData diff --git a/gtk/gtkselection.h b/gtk/gtkselection.h index e151571cf3..200272c0b1 100644 --- a/gtk/gtkselection.h +++ b/gtk/gtkselection.h @@ -225,6 +225,8 @@ GDK_AVAILABLE_IN_ALL gboolean gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data, GdkPixbuf *pixbuf); GDK_AVAILABLE_IN_3_94 +cairo_surface_t *gtk_selection_data_get_surface (GtkSelectionData *selection_data); +GDK_AVAILABLE_IN_3_94 gboolean gtk_selection_data_set_surface (GtkSelectionData *selection_data, cairo_surface_t *surface); GDK_AVAILABLE_IN_ALL -- 2.30.2